package protect.week05;

import java.util.Stack;

/**
 * @author thinkpad - 83start
 * @version v1.0
 * @create 2022/9/30 20:11
 * @package Week_01
 * @description  最长公共前缀
 *
 * 未完成
 *
 * 编写一个函数来查找字符串数组中的最长公共前缀。
 *
 * 如果不存在公共前缀，返回空字符串 ""。
 *
 *  
 *
 * 示例 1：
 *
 * 输入：strs = ["flower","flow","flight"]
 * 输出："fl"
 * 示例 2：
 *
 * 输入：strs = ["dog","racecar","car"]
 * 输出：""
 * 解释：输入不存在公共前缀。
 *  
 *
 * 提示：
 *
 * 1 <= strs.length <= 200
 * 0 <= strs[i].length <= 200
 * strs[i] 仅由小写英文字母组成
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/longest-common-prefix
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

public class Ch03_LongestCommonPrefix {
    public static String longestCommonPrefix(String[] strs) {
        // 如果字符串的长度为 0，则直接返回空字符串
        if (strs.length == 0){
            return "";
        }
        // 如果字符串的长度为 1，则直接返回第一个字符串
        if (strs.length == 1){
            return strs[0];
        }

        // 将第一个字符串赋值给 ans 遍历
        String ans = strs[0];

        for (int i = 1; i < strs.length; i++) {
            int j = 0;
            for (;j <ans.length() && j<strs[i].length();j++){
                if (ans.charAt(j) != strs[i].charAt(j)){
                    break;
                }
            }
            // 截取公共部分 的字符串
            ans = ans.substring(0,j);
            if (ans.equals("")){
                return ans;
            }
        }

        return ans;

    }

}
